/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package pers.sakurasora.lesson.service;

import java.util.List;
import pers.sakurasora.lesson.dto.UserDto;
import pers.sakurasora.lesson.entity.SysUser;

/**
 * @author SakuraSora
 * @Email 1468071675@qq.com
 * @DateTime 2018-10-30 15:31:14
 *
 * @Description
 *             服务层接口，面向业务逻辑的语义--用户
 */
public interface UserService {
  
    /**
     * 用户认证
     * @param account
     *               用户名
     * @param password
     *                密码
     * @return 
     *        成功--经过认证的用户<br>
     *        失败--null
     */
    SysUser authenticate(String account, String password);
    
    /**
     * 根据id获取用户
     * @param id
     *          用户id
     * @return
     *          成功--查找的用户<br>
     *          失败--null
     */
    SysUser getUserById(int id);
    
    /**
     * 添加用户
     * @param user
     *              用户对象
     * @return 
     *          成功--true<br>
     *          失败--false
     */
    boolean addUser(SysUser user);
    
    /**
     * 删除用户
     * @param id
     * @return
     *          成功--true<br>
     *          失败--false
     */
    boolean deleteUser(int id);
    
    /**
     * 修改用户信息
     * @param user
     *              用户对象
     * @return
     *          成功--true<br>
     *          失败--false
     */
    boolean modifyUser(SysUser user);
    
    /**
     * 获取用户列表
     * @param dto
     * @return 
     *          成功--用户列表<br>
     *          失败--null
     */
    List<SysUser> getUserList(UserDto dto);
    
    /**
     * 查询用户名是否已存在
     * @param account
     * @return 
     *          存在--false<br>
     *          不存在--true
     */
    boolean checkAccount(String account);
}
